package com.cskaoyan.javase.oop2._1extends._10final._3variable._1local;

/**
 * final修饰局部变量,这里以方法中的局部变量为例子
 * 在方法中,局部位置有:
 *      1.方法体内部
 *          final修饰局部变量的语法:
 *          final 数据类型 变量名 = 取值;
 *          这时在定义该常量的下面,可以访问
 *              但不能修改
 *
 *      2.形参列表中
 *      在定义形参时,可以定义常量: final 数据类型 变量名;
 *      形参写常量,并不意味着该方法只能传入常量作为参数
 *      而是表示该参数传入方法以后,可以访问,但是不能修改
 *
 * final修饰引用数据类型:
 * 修饰引用,表示引用不可变
 * 不可能修饰对象
 *
 * @since 17:04
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        test("hello");
        String str = "666";
        test(str);

        final Student s = new Student(18);
        // s = new Student(80);
        s.age = 81;
        System.out.println(s.age);

        // final new Student(90);
    }

    public static void test(final String name) {
        final int num = 100;
        System.out.println(num);
        System.out.println(num + 1);
        // System.out.println(num++);

        System.out.println(name);
        System.out.println(name + "777");
        // name = "777";
    }
}

class Student {
    int age;

    public Student(int age) {
        this.age = age;
    }
}